A communication system is sometimes conceptually described by an Open Systems Interconnection model (OSI). The model partitions internal functions of the communication system into abstraction layers, such as physical layer (layer 1), data link layer (layer 2), network layer (layer 3), transport layer (layer 4), session layer (layer 5) etc.
An Ethernet network, as an example of a known communication system, is often considered to be part of layer 2. The Ethernet network is also an example of a so called switched network, which uses only network switches rather than network hubs. The difference between network switches and hubs is that hubs forward data frames on all its ports at all times, while the network switches attempts to forward data frames only on those ports that are relevant for a certain data frame.
The Ethernet network comprises a first host and a second host that communicates with each other using unique MAC addresses to identify the first and second hosts, respectively. The first host may be a router and the second host may be a Personal Computer (PC), or vice versa.
The Ethernet network also comprises a number of network switches for forwarding data frames, i.e. constituting the communication between the first and second hosts, within the Ethernet network towards the first and/or second host. The data frames are Media Access Control (MAC) data frames, which include a destination MAC address field and a source MAC address field. See e.g. Institute of Electrical and Electronics Engineers (IEEE) 802.3 specifications.
When a network switch receives a data frame, it looks up a destination MAC address, located in the destination MAC address field of the received data frame, in a so called MAC address table in order to find out at which port of the network switch the received data frame should be feed. Thus, the MAC address table maps, or associates, a MAC address to a port of the network switch.
Additionally, the network switch checks the source address field of the received data frame and notes at which port the received data frame was received. This means that the network switch checks if the MAC address in the source address field of the received data frame is not present, or mapped to another port, in the MAC address table of the network switch. Then, i.e. when the MAC address table needs to be updated due to either not present or mapping to another port, the source address and the port, at which the data frame was received, is put into the MAC address table for future use. This process of populating the MAC address table is sometimes referred to as MAC learning.
Moreover, when the destination MAC address is not found in the MAC address table, the network switch forwards the received data frame to additional ports, excluding the port at which the received data frame was received. This creates additional traffic, due to data frames being forwarded to the additional ports of the network switch, in the Ethernet network. When these data frames are received at e.g. the first host, and the first host cannot find its own MAC address in the destination MAC address field of the data frames, the first host is said to be flooded. Accordingly, the network switch is flooding data frames.
The first host can send request messages to check for the existence of a MAC address belonging to the second host. This can be done by the first host in order to keep its Address Resolution Protocol (ARP) tables updated. ARP is used to convert an Internet Protocol (IP) address to a physical address, such as an Ethernet address, also known as a MAC address. The request messages are sent periodically, e.g. every 5th minute.
Continuing with the example above, the first host can have a redundant L2 connection towards the network switches. The redundant L2 connection is build up by a first port of first host towards a first network switch and a second port of the first host towards a second network switch. This set up is called redundant because only one of the first and second ports is used at the time. There will thus be one active port and one passive port at the first host.
When the first host sends data frames to the second host, these data frames include a MAC address of the active port in the source MAC address field. Thus, the network switches are able to learn the MAC address mapped to the active port.
A failure, such as that a network switch goes down, may happen in the Ethernet network. Another switch will then no longer be able to forward data frames, intended for the first host, at the port connected to the network switch that went down. Thus, flooding will occur due to that the MAC address table lacks information about which port the data frames should be forwarded to for the given destination MAC address. See also FIG. 1b below.
A problem is that flooding occurs for a long time in the Ethernet network when data frames are forwarded in one direction, or is considered to be unidirectional. The flooding will proceed until the first host sends a message with its own MAC address in the source MAC address field, e.g. in response to the periodically sent request message, which is mentioned above. In order to shorten the time during which flooding occurs, the periodicity of the request message may be shortened. However, a shortened periodicity implies an increase of request messages, which take up valuable network resources which otherwise could be used for data frame carrying payload data.